﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PSE.Framework.Communication.Adapters.Tgp;

namespace PSE.Framework.Communication.Client.Tgp
{
    public class TgpInputClient : SyncInputClient<TgpOpenParameter,TgpReceiveParameter> 
    {
        public TgpInputClient()
        {
        }

        /// <summary>
        /// Adapter encapsulado pelo client
        /// </summary>
        protected new TgpInputAdapter Adapter
        {
            get { return (TgpInputAdapter)base.Adapter; }
        }

        /// <summary>
        /// Retorna o tipo do adapter encapsulado pelo client
        /// </summary>
        /// <returns></returns>
        protected override Type GetAdapterType()
        {
            return typeof(TgpInputAdapter);
        }

        #region SendEchoMessage
        /// <summary>
        /// Envia mensagem de eco
        /// </summary>
        /// <returns>Código da mensagem</returns>
        public int SendEchoMessage()
        {
            return this.Adapter.SendEchoMessage();
        }
        #endregion

        #region GetEchoMessageStatus
        /// <summary>
        /// Captura o status da mensagem de eco
        /// </summary>
        /// <param name="codigoMensagem">Código da mensagem</param>
        /// <returns>Status da mensagem</returns>
        public TgpMessageStatus GetEchoMessageStatus(int codigoMensagem)
        {
            return this.Adapter.GetEchoMessageStatus(codigoMensagem);
        }
        #endregion
    }
}
